#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>

class MinStack {
public:
    MinStack() {}

    void push(int val) {
        st.push(val);
        if (minst.empty() || val <= minst.top())
        {
            minst.push(val);
        }
    }

    void pop() {
        int del = st.top();
        if (del == minst.top()) {
            minst.pop();
        }
        st.pop();
    }

    int top() { return st.top(); }

    int getMin() { return minst.top(); }
    stack<int> st;
    stack<int> minst;
};
